﻿using Microsoft.Office.Server.Search.Query;

namespace Trentacular.Office.Server.Search.FacetedSearch.QueryRetrieval
{
    /// <summary>
    /// Common interface for query retieval implementations.
    /// </summary>
    public interface IQueryRetriever
    {
        /// <summary>
        /// Retrieves the query that will mimic the query used to execute the main
        /// search but with the select clause replaced the given managed properties.
        /// </summary>
        /// <returns>A query that will mimic the query used to execute the main search
        /// but with the select clause replaced the given managed properties.
        /// </returns>
        Query RetrieveQuery(string[] managedPropertiesToQuery);

        /// <summary>
        /// Gets the query text.
        /// </summary>
        /// <value>The query text.</value>
        string QueryText { get; }
    }
}
